import request from '@/utils/http'

/**
 * 角色相关接口
 */
const roleApi = {
  /**
   * 获取角色列表
   * @param {Object} params - 查询参数
   * @returns {Promise} 请求结果
   */
  getRoleList(params = {}) {
    const timestamp = new Date().getTime();
    const finalParams = { ...params, _t: timestamp };
    
    return request({
      url: '/roles',
      method: 'get',
      params: finalParams
    });
  },

  /**
   * 获取角色详情
   * @param {Number} id - 角色ID
   * @returns {Promise} 角色详情数据
   */
  getRoleDetail(id) {
    console.log('API: 调用getRoleDetail接口，角色ID:', id);
    
    return request({
      url: `/roles/${id}`,
      method: 'get'
    });
  },

  /**
   * 创建角色
   * @param {Object} data - 角色数据
   * @returns {Promise} 请求结果
   */
  createRole(data) {
    return request({
      url: '/roles',
      method: 'post',
      data
    });
  },

  /**
   * 更新角色
   * @param {Number} id - 角色ID
   * @param {Object} data - 角色数据
   * @returns {Promise} 请求结果
   */
  updateRole(id, data) {
    return request({
      url: `/roles/${id}`,
      method: 'put',
      data
    });
  },

  /**
   * 删除角色
   * @param {Number} id - 角色ID
   * @returns {Promise} 请求结果
   */
  deleteRole(id) {
    return request({
      url: `/roles/${id}`,
      method: 'delete'
    });
  },

  /**
   * 获取角色权限
   * @param {Number} roleId - 角色ID
   * @returns {Promise} 请求结果
   */
  getRolePermissions(roleId) {
    return request({
      url: `/roles/${roleId}/permissions`,
      method: 'get'
    });
  },

  /**
   * 更新角色权限
   * @param {Number} roleId - 角色ID
   * @param {Array} menuIds - 菜单ID数组
   * @returns {Promise} 请求结果
   */
  updateRolePermissions(roleId, menuIds) {
    return request({
      url: `/roles/${roleId}/permissions`,
      method: 'put',
      data: {
        menu_ids: menuIds
      }
    });
  },

  /**
   * 获取使用该角色的用户列表
   * @param {Number} roleId - 角色ID
   * @returns {Promise} 请求结果
   */
  getRoleUsers(roleId) {
    return request({
      url: `/roles/${roleId}/users`,
      method: 'get'
    });
  }
};

export default roleApi; 